package ar.com.uade.administradorsiembra.modelo.reglas;

import java.util.Iterator;
import java.util.PriorityQueue;

import ar.com.uade.administradorsiembra.modelo.Cereal;
import ar.com.uade.administradorsiembra.modelo.Lote;

public class MotorValidaciones {
	
	PriorityQueue<ReglaNegocio> reglas;
	
	public MotorValidaciones() {
		reglas = new PriorityQueue<ReglaNegocio>();
	}
	
	public void addRegla(ReglaNegocio regla) {
		this.reglas.add(regla);
	}
	
	public Cereal obtenerCereal(Lote lote) {
		
		Contexto contexto = new Contexto();
		contexto.addLoteContexto(lote);
		boolean continuar = true;
		
		Iterator<ReglaNegocio> ite = this.reglas.iterator();
		
		
		while (ite.hasNext() && continuar) {
			ReglaNegocio reglaNegocio = ite.next();
			continuar = reglaNegocio.ejecutar(contexto);
		}
		
		return contexto.getCereal();
	}

}
